#include "MessageChatBox.h"
#include <QDateTime>

MessageChatBox::MessageChatBox(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::MessageChatBoxClass())
{
    ui->setupUi(this);
    
    // 设置默认样式
    setMessageStyle();
}

MessageChatBox::~MessageChatBox()
{
    delete ui;
}

void MessageChatBox::setMessage(const QString& username, const QString& message, const QString& timestamp)
{
    // 设置用户名
    ui->Username->setText(username);
    
    // 设置时间戳
    QString time = timestamp.isEmpty() ? QDateTime::currentDateTime().toString("hh:mm:ss") : timestamp;
    ui->Timestamp->setText(time);
    
    // 设置消息内容
    ui->MessageText->setText(message);
    
    // 设置普通消息样式
    setMessageStyle("#2E7D32", "#000000", "#666666"); // 绿色用户名
}

void MessageChatBox::setSystemMessage(const QString& message, const QString& timestamp)
{
    // 设置系统标识
    ui->Username->setText("系统");
    
    // 设置时间戳
    QString time = timestamp.isEmpty() ? QDateTime::currentDateTime().toString("hh:mm:ss") : timestamp;
    ui->Timestamp->setText(time);
    
    // 设置消息内容
    ui->MessageText->setText(message);
    
    // 设置系统消息样式
    setMessageStyle("#FF6B35", "#1A1A1A", "#666666"); // 橙色系统标识
}

void MessageChatBox::setMessageStyle(const QString& usernameColor, 
                                    const QString& messageColor, 
                                    const QString& timestampColor)
{
    // 设置用户名样式
    ui->Username->setStyleSheet(QString("QLabel { color: %1; font-weight: bold; }").arg(usernameColor));
    
    // 设置消息内容样式
    ui->MessageText->setStyleSheet(QString("QLabel { color: %1; }").arg(messageColor));
    
    // 设置时间戳样式
    ui->Timestamp->setStyleSheet(QString("QLabel { color: %1; font-size: 11px; }").arg(timestampColor));
    
    // 设置整体消息框样式
    ui->Canvas->setStyleSheet(
        "QWidget#Canvas { "
        "   background-color: #F5F5F5; "
        "   border: 1px solid #E0E0E0; "
        "   border-radius: 8px; "
        "   margin: 2px; "
        "} "
        "QWidget#Canvas:hover { "
        "   background-color: #F0F0F0; "
        "}"
    );
}

